package com.qdlc.p2p.biz.service;

import com.qdlc.p2p.dal.common.model.jpa.PageDataList;
import com.qdlc.p2p.dal.dto.Bond;
import com.qdlc.p2p.dal.model.BondModel;

/**
 * 债权Service
 *
 * @author zhangyz
 * @version 1.0
 * @since 2014-12-11
 */
public interface BondService {

    /**
     * 添加债权
     *
     * @param bond 债权实体
     */
    Bond addBond(Bond bond);

    /**
     * 查询债权详情
     *
     * @param model
     * @return
     */
    BondModel getBondDetail(BondModel model);

    /**
     * 债权分页
     *
     * @param model 查询参数
     * @return
     */
    PageDataList<BondModel> getBondList(BondModel model);

    /**
     * 可转让债权
     *
     * @param model 查询参数
     * @return
     */
    PageDataList<BondModel> getBondModelPage(BondModel model);

    /**
     * 转让中债权
     *
     * @param model 查询参数
     * @return
     */
    PageDataList<BondModel> getSellingBondList(BondModel model);

    /**
     * 已转出债权
     *
     * @param model 查询参数
     * @return
     */
    PageDataList<BondModel> getSoldBondList(BondModel model);

    /**
     * 停止债权转让
     *
     * @param bondId
     */
    void stopBond(long bondId);

    /**
     * 查询债权详情
     *
     * @param uuid
     * @return
     */
    BondModel getBondModelByBondId(String uuid);

    /**
     * 查询债权详情
     *
     * @param id
     * @return
     */
    BondModel getBondModelByBondId(long id);

    /**
     * 查询债权详情
     *
     * @param tenderId
     * @return
     */
    BondModel getBondModelByBondTenderId(long tenderId);

    /**
     * 根据uuid 查询债权信息
     *
     * @param uuid
     * @return
     */
    Bond find(String uuid);

}
